// vue.config.js
const path = require("path");
module.exports = {
  publicPath: process.env.NODE_ENV === "production" ? "/" : "./", //项目相对路径
  outputDir: "dist", //打包时生成的文件包的名称
  assetsDir: "static", //生成的静态资源的文件包名
  indexPath: "./", //指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径。
  filenameHashing: true, //生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存。
  lintOnSave: process.env.NODE_ENV !== "production", // 开发环境添加eslintrc检测
  runtimeCompiler: false, // 是否使用包含运行时编译器的Vue构建版本
  productionSourceMap: process.env.NODE_ENV !== "production", // map文件生产环境不生产
  // pages:{},//多页面应用使用
  transpileDependencies: [], //需要编译的node_modules
  crossorigin: "use-credentials", //设置生成的 HTML 中 <script> 和 <link rel="stylesheet"> 标签的 crossorigin 属性。(生成的html,模板中的不受影响)
  devServer: {
    //代理
    overlay: true, // 将错误显示在html之上
    port: "9528", //设置端口号
    proxy: {
      //代理
      "/api": {
        target: "http://192.168.1.3:3000/", //代理地址
        changeOrigin: true,
        secure: false,
        pathRewrite: {
          "^/api": ""
        }
      }
    }
  },
  css: {
    //对css的一些处理
    requireModuleExtension: false, //设置为false 将对所有引入的css做编译处理，设置为true 则引入css时需要 后缀添加.module
    extract: process.env.NODE_ENV === "production", // 是否将css提取到一个文件
    sourceMap: false, //map文件开启
    loaderOptions: {
      // //向 CSS 相关的 loader 传递选项
      // css: {
      //   // 这里的选项会传递给 css-loader
      // },
      // postcss: {
      //   // 这里的选项会传递给 postcss-loader
      // },
      // sass: {
      //   // 这里的选项会传递给 sass-loader
      // },
      // less: {
      //   // 这里的选项会传递给 less-loader
      // },
      // stylus: {
      //   // 这里的选项会传递给 stylus-loader
      // }
    }
  },
  configureWebpack: {
    // 对 webpack 同名属性的修改
    resolve: {
      alias: {
        //文件名重定义
        "@": path.resolve("src")
      }
    }
  },
  chainWebpack: config => {
    //configureWebpack的高阶，该函数为确认webpack编译参数之后的回调函数，config为确认后的值可在函数内部进行修改，可进行链式操作
    config.module
      .rule("less")
      .test(/\.less$/)
      .oneOf("vue")
      .resourceQuery(/\?vue/)
      .use("px2rem")
      .loader("px2rem-loader")
      .before("postcss-loader")
      .options({
        remUnit: 75
      });
  }
  // parallel: require("os").cpus().length > 1,
  // pwa: {}
};
